package com.ease.component.events {
   import flash.events.MouseEvent;

   /**
    * An event which is dispatched for right and middle mouse button events.
    */
   public class AdvancedMouseEvent extends MouseEvent {
      /**
       * Occurs when the user middle-clicks on a component.
       *
       * @eventType middleClick
       */
      public static const MIDDLE_CLICK:String = "middleClick";
      /**
       * Occurs when the user presses down the middle mouse button.
       *
       * @eventType middleMouseDown
       */
      public static const MIDDLE_MOUSE_DOWN:String = "middleMouseDown";
      /**
       * Occurs when the user releases the middle mouse button.
       *
       * @eventType middleMouseUp
       */
      public static const MIDDLE_MOUSE_UP:String = "middleMouseUp";
      /**
       * Occurs when the user right-clicks on a component.
       *
       * @eventType rightClick
       */
      public static const RIGHT_CLICK:String = "rightClick";
      /**
       * Occurs when the user presses down the right mouse button.
       *
       * @eventType rightMouseDown
       */
      public static const RIGHT_MOUSE_DOWN:String = "rightMouseDown";
      /**
       * Occurs when the user releases the right mouse button.
       *
       * @eventType rightMouseUp
       */
      public static const RIGHT_MOUSE_UP:String = "rightMouseUp";

      /**
       * Constructs a new <code>AdvancedMouseEvent</code> instance.
       *
       * @param type The type of the event.
       * @param bubbles Indicates whether this event bubbles up.
       * @param cancelable Indicates whether this event can be canceled.
       * @param localX The <code>x</code> coordinates of the mouse local to the
       *            event target.
       * @param localY The <code>y</code> coordinates of the mouse local to the
       *            event target.
       * @param ctrlKey Indicates whether the Ctrl key was pressed when the
       *            user clicked.
       * @param altKey Indicates whether the Alt key was pressed when the user
       *            clicked.
       * @param shiftKey Indicates whether the Shift key was pressed when the
       *             user clicked.
       */
      public function AdvancedMouseEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = true, localX:Number = 0,
                              localY:Number = 0, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false) {
         super(type, bubbles, cancelable, localX, localY, null, ctrlKey, altKey, shiftKey);
      }
   }
}
